home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 February: Technology Seed / Mac Tech Seed Feb '97.toast / OpenDoc 1.2b2c1 / Implementation / UI / StdDispM.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-02-13  |  6.0 KB  |  162 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        StdDispM.h
  3.  
  4.     Contains:    Helper object for standard dispatch module for Macintosh
  5.  
  6.     Owned by:    Richard Rodseth
  7.  
  8.     Copyright:    © 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  9.  
  10.     Change History (most recent first):
  11.  
  12.          <2>     9/18/96    CSL        1378925: don't deliver orphan mouse-up
  13.                                     events.
  14.         <10>     9/21/95    RR        #1286167 Suppress mouse up after bg
  15.                                     mousedown. Renamed fInvalidClick to
  16.                                     fSuppressMouseUp
  17.          <9>     8/29/95    RR        #1276401 Added tokenized mousr focus
  18.          <8>     6/15/95    RR        #1254828/1255536 Adding Redispatching
  19.          <7>     5/10/95    RR        # 1242893, 1245692 Added fields to support
  20.                                     Mouse up dispatching
  21.          <6>      5/2/95    RR        # 1226050 Added fLastBorderFrame.
  22.          <5>     1/13/95    RR        Added eventInfo to event handling methods
  23.          <4>    10/27/94    RR        Added tokenized focus fields
  24.          <3>     9/30/94    RR        #1171182 Treat icons as bundled. Added
  25.                                     fViewAsFrameToken
  26.          <2>      9/6/94    RR        Added utility methods for event propagation
  27.          <1>     6/24/94    RR        first checked in
  28.         <14>     3/15/94    MB        Changes to support SCpp/ASLM builds,
  29.                                     #1150864.
  30.         <13>     2/16/94    JA        Stop including Point.h.
  31.         <12>      2/9/94    NP        Tiger Team cleanup.
  32.         <11>     1/21/94    RR        Restored Dispatch() signature
  33.         <10>     1/18/94    RR        Add fScrollingFocus. Added DispatchTheEvent
  34.                                     to propagate to container where appropriate
  35.          <9>     1/15/94    RR        WinState.h->WinStat.h,
  36.                                     Dispatch.h->Disptch.h
  37.          <8>     1/11/94    TÇ        Init... changes
  38.          <7>    12/20/93    RR        New init strategy
  39.          <6>    12/16/93    RR        DispatchToFacetUnderPoint became a member
  40.                                     function
  41.          <5>     12/2/93    RR        Use new eventType definition
  42.          <4>    11/19/93    RR        Added DispatchWindowEvent
  43.          <3>     8/13/93    CG        Added ASLM stuff.
  44.          <2>     8/11/93    RR        Added fields to cache handy references to
  45.                                     session globals
  46.          <1>     8/10/93    RCR        first checked in
  47.  
  48.     To Do:
  49. */
  50.  
  51. #ifndef _STDDISPM_
  52. #define _STDDISPM_
  53.  
  54. #ifndef _ODTYPES_
  55. #include "ODTypes.h"
  56. #endif
  57.  
  58. #ifndef _PLFMDEF_
  59. #include "PlfmDef.h"
  60. #endif
  61.  
  62. //=====================================================================================
  63. // Classes defined in this interface
  64. //=====================================================================================
  65.  
  66. class MacDispatchModule;
  67.  
  68. //=====================================================================================
  69. // Classes used by this interface
  70. //=====================================================================================
  71.  
  72. class ODWindow;
  73. class ODWindowState;
  74. class ODArbitrator;
  75. class ODDispatcher;
  76. class ODSession;
  77. class ODFrame;
  78. class ODFacet;
  79.  
  80. //=====================================================================================
  81. // Global Variables
  82. //=====================================================================================
  83.  
  84. //=====================================================================================
  85. // MacDispatchModule
  86. //=====================================================================================
  87.  
  88. class MacDispatchModule 
  89. {
  90. public:
  91.  
  92.     MacDispatchModule();
  93.             
  94.     ~MacDispatchModule();
  95.     
  96.     ODNVMethod void InitMacDispatchModule(Environment* ev, ODSession* session);
  97.  
  98.     ODNVMethod ODBoolean Dispatch(Environment* ev, ODEventData* event, ODEventInfo* eventInfo);
  99.  
  100. protected:
  101.  
  102.     ODNVMethod void DispatchOSEvent(Environment* ev, ODEventData* event);
  103.     ODNVMethod void MouseMoved(Environment* ev, ODEventData* theEvent);
  104.     ODNVMethod void SuspendResume(Environment* ev, ODEventData* theEvent);
  105.     
  106.     ODNVMethod ODBoolean DispatchMouseDownEvent(Environment* ev, ODEventData* event, ODEventInfo* eventInfo);
  107.     ODNVMethod ODBoolean DispatchMouseUpEvent(Environment* ev, ODEventData* event, ODEventInfo* eventInfo);
  108.     ODNVMethod ODBoolean DispatchMenuEvent (Environment* ev, ODEventData* theEvent, ODEventInfo* eventInfo);
  109.     ODNVMethod ODBoolean DispatchMouseDownInContent (Environment* ev, ODWindow* theWindow,
  110.                                                 ODEventData* theEvent, ODEventInfo* eventInfo)    ;
  111.     ODNVMethod ODBoolean DispatchMouseDownInBorder(Environment* ev, ODEventData* theEvent, ODEventInfo* eventInfo)    ;
  112.     ODNVMethod ODBoolean DispatchMouseDownEmbedded(Environment* ev, ODEventData* theEvent, ODEventInfo* eventInfo)    ;
  113.     ODNVMethod ODBoolean DispatchMouseUpEmbedded(Environment* ev, ODEventData* theEvent, ODEventInfo* eventInfo)    ;
  114.     ODNVMethod ODBoolean DispatchKeyDownEvent(Environment* ev, ODEventData* event, ODEventInfo* eventInfo);
  115.     ODNVMethod ODBoolean DispatchKeyUpEvent(Environment* ev, ODEventData* event, ODEventInfo* eventInfo);
  116.     
  117.     ODNVMethod ODBoolean DispatchUpdateEvent(Environment* ev, ODEventData* event);
  118.     ODNVMethod ODBoolean DispatchActivateEvent(Environment* ev, ODEventData* event);
  119.  
  120.     ODNVMethod ODBoolean DispatchWindowEvent(Environment* ev, ODWindow* window, 
  121.                                 short partCode, ODEventData* theEvent, ODEventInfo* eventInfo);
  122.  
  123.     ODNVMethod ODBoolean DispatchToFacetUnderPoint(Environment* ev, ODWindow* window, ODPoint& windowPt, 
  124.                                                     ODEventData* theEvent, ODEventInfo* eventInfo);
  125.  
  126.     ODNVMethod ODBoolean DispatchTheEvent(Environment* ev, 
  127.                             ODEventData* theEvent, 
  128.                             ODFrame* targetFrame,
  129.                             ODFacet* targetFacet,
  130.                             ODEventInfo* eventInfo);
  131.                             
  132.     ODNVMethod ODBoolean PropagateTheEvent(Environment* ev, 
  133.                             ODEventData* theEvent, 
  134.                             ODFrame* initialFrame,
  135.                             ODFacet* initialFacet,
  136.                             ODEventInfo* eventInfo);
  137.         
  138. protected:
  139.  
  140.     // Caches for frequently accessed items
  141.     ODSession*         fSession;
  142.     ODArbitrator*     fArbitrator;
  143.     ODWindowState* fWindowState;
  144.     ODDispatcher*     fDispatcher;
  145.  
  146.     ODTypeToken fKeyFocusToken;
  147.     ODTypeToken fMenuFocusToken;
  148.     ODTypeToken fSelectionFocusToken;
  149.     ODTypeToken fModalFocusToken;
  150.     ODTypeToken fMouseFocusToken;
  151.     ODTypeToken fScrollingFocusToken;
  152.     ODTypeToken fLargeIconViewToken;
  153.     ODTypeToken fSmallIconViewToken;
  154.     ODTypeToken fThumbnailViewToken;
  155.     
  156.     ODFacet* fMouseDownFacet; // The facet to which the last mouse down in border was sent. Used for the mouse up
  157.     ODFacet* fEmbeddedFacet;  // The embedded facet fpr a kODEvtMouseDownEmbedded. Used for the mouse up
  158.     ODBoolean fSuppressMouseUp;    // Mouse down outside active border; Background mouse down
  159.     ODBoolean fMouseButtonIsDown; // Used to track the mouse state and reject orphan mouse-ups (bug 1382558)
  160. };
  161. #endif // _STDDISPM_
  162.